/**
 * 
 */
package com.alstudio.module.xmpp.protocol.xmpp.packact;

import java.util.HashMap;

/**
 * 
 * 配置XMPP用到的域名。通过命名空间来查找
 * 
 * @author alonso lee
 * 
 */
public class ALXmppDomainConfig {

	private HashMap<String, String> domains;
	private static ALXmppDomainConfig instance;

	public static ALXmppDomainConfig getALXmppDomainConfig() {
		if (instance == null) {
			instance = new ALXmppDomainConfig();
		}
		return instance;
	}

	/**
	 * 
	 */
	public ALXmppDomainConfig() {
		// TODO Auto-generated constructor stub
		initDomains();
	}

	/**
	 * 传入命名空间，获取域名
	 * 
	 * @param ns
	 * @return
	 */
	public String getDomainByNameSpace(String ns) {
		return domains.get(ns);
	}

	private void initDomains() {
		domains = new HashMap<String, String>();
		registerDomain();
	}

	private void registerDomain() {

		// 注册
		domains.put(IQNameSpace.NS_REGISTER, "register.");
		// 检测邮箱是否注册
		domains.put(IQNameSpace.NS_EMAIL_CHECK, "registercheck.");
		// 检测第三方是否注册
		domains.put(IQNameSpace.NS_THIRD_PART_LOGIN, "thirdpart.");

		// 反馈
		domains.put(IQNameSpace.NS_SUGGEST, "suggest.");
		// ping包
		// domains.put(IQNameSpace.NS_URN_XMPP_PING, new XmppPingPackactParser()
		// {
		// });

		/******************************* voip *************************************/
		domains.put(IQNameSpace.NS_MAKE_VOIP_CALL, "voip.");
		domains.put(IQNameSpace.NS_ACCEPT_CALL, "voip.");
		domains.put(IQNameSpace.NS_REJECT_CALL, "voip.");
		domains.put(IQNameSpace.NS_HAND_UP_CALL, "voip.");
		domains.put(IQNameSpace.NS_UPLOAD_VOIP_NET_STATE, "voip.");
		domains.put(IQNameSpace.NS_BAO_MI_HUA_ENTER, "baomihua.");
		domains.put(IQNameSpace.NS_BAO_MI_HUA_QUIT, "baomihua.");
		domains.put(IQNameSpace.NS_XIE_HOU, "xiehou.");
		
		domains.put(IQNameSpace.NS_VOIP_RECORD_WITH_STRANGER, "voip.");

		domains.put(IQNameSpace.NS_VOIP_RECORD_WITH_FRIENDS, "voip.");

		domains.put(IQNameSpace.NS_VOIP_RECORD_WITH_BAOMIHUA, "voip.");
		domains.put(IQNameSpace.NS_VOIP_CHARGE, "voip.");
		domains.put(IQNameSpace.NS_SET_VOIP_CALL_PRICE, "vcard.");
		domains.put(IQNameSpace.NS_VOIP_CALL_PRICE_LIST, "voip.");
		domains.put(IQNameSpace.NS_VOIP_CALL_HISTORY_DETAIL, "voip.");
		domains.put(IQNameSpace.NS_VOIP_CALL_HISTORY_DETAIL_DELETE, "voip.");

		/****************************** voip *************************************/

		/********************************* 用户操作 ******************************************/
		// 发现
		domains.put(IQNameSpace.NS_DISCOVERY, "search.");
		// 搜索
		domains.put(IQNameSpace.NS_SEARCH, "search.");

		// 排行榜排名
		domains.put(IQNameSpace.NS_RANKING_RANK, "ranking.");

		// 魅力榜
		domains.put(IQNameSpace.NS_RANKING_GLAMOUR, "ranking.");

		// 富豪榜
		domains.put(IQNameSpace.NS_RANKING_RICH, "ranking.");
		// 女神榜
		domains.put(IQNameSpace.NS_RANKING_SEXY, "ranking.");

		// 好友列表
		domains.put(IQNameSpace.NS_FAVORITES_LIST, "favorites.");

		// 粉丝列表
		domains.put(IQNameSpace.NS_FANS_LIST, "favorites.");

		// 个人资料
		domains.put(IQNameSpace.NS_USER_PROFILE, "vcard.");
		// 修改个人资料
		domains.put(IQNameSpace.NS_MODIFY_USER_PROFILE, "vcard.");
		// 语音介绍
		domains.put(IQNameSpace.NS_VOICE_INTRO, "voiceanalyze.");

		// 删除粉丝
		domains.put(IQNameSpace.NS_DELETE_FANS, "favorites.");

		// 删除好友
		domains.put(IQNameSpace.NS_DELETE_FAVORITE, "favorites.");
		// 相互关注列表
		domains.put(IQNameSpace.NS_FAVORITES_EACH_OTHER, "favorites.");

		/**
		 * 收藏用戶
		 */
		domains.put(IQNameSpace.NS_ADD_FAVORITES, "favorites.");

		/**
		 * 对用户特别关注
		 */
		domains.put(IQNameSpace.NS_ADD_FAVORITES_SPECIAL, "favorites.");

		/**
		 * 取消特别关注
		 */
		domains.put(IQNameSpace.NS_DELETE_FAVORITES_SPECIAL, "favorites.");

		/**
		 * 设置备注名
		 */
		domains.put(IQNameSpace.NS_ADD_NOTE_NAME, "favorites.");

		/**
		 * 黑名单
		 */
		domains.put(IQNameSpace.NS_BLACK_LIST, "privacy.");

		/**
		 * 举报用户
		 */
		domains.put(IQNameSpace.NS_ACCUSATION_CHARGE, "accusation.");

		/**
		 * 更改密码
		 */
		domains.put(IQNameSpace.NS_CHANGE_PWD, "customaccount.");

		/**
		 * 提交用户选项
		 */
		domains.put(IQNameSpace.NS_COMMIT_USER_OPTION, "useroption.");

		/**
		 * 获取用户选项
		 */
		domains.put(IQNameSpace.NS_GET_USER_OPTION, "useroption.");

		/**
		 * 加V认证
		 */
		domains.put(IQNameSpace.NS_START_VAUTH, "vrecognize.");

		/**
		 * V认证状态
		 */
		domains.put(IQNameSpace.NS_CHECK_VAUTH_STATE, "vrecognize.");

		/**
		 * 绑定邮箱
		 */
		domains.put(IQNameSpace.NS_BIND_EMAIL, "emailbind.");

		/**
		 * 再次绑定邮箱
		 */
		domains.put(IQNameSpace.NS_BIND_EMAIL_AGAIN, "emailbind.");

		/************************************** 经济系统 *****************************************************/
		/**
		 * 我的积分
		 */
		domains.put(IQNameSpace.NS_GET_USER_POINTS, "gift.");

		/**
		 * 清除积分
		 */
		domains.put(IQNameSpace.NS_DELETE_USER_POINTS, "moneyhistory.");

		/**
		 * 获取积分清单
		 */
		domains.put(IQNameSpace.NS_GET_POINT_HISTORY, "moneyhistory.");

		/**
		 * 获取账单
		 */
		domains.put(IQNameSpace.NS_GET_USER_MONEY_HISTORY, "moneyhistory.");

		/**
		 * 清空账单记录
		 */
		domains.put(IQNameSpace.NS_DELETE_MONEY_HISTORY, "moneyhistory.");

		/**
		 * 请求充值价格
		 */
		domains.put(IQNameSpace.NS_GET_RECHARGE_PRICE_LIST, "goldprice.");

		/************************************** 道具系统 *****************************************************/
		/**
		 * 道具商城
		 */
		domains.put(IQNameSpace.NS_PROPS_LIST, "props.");

		/**
		 * 查询道具价格
		 */
		domains.put(IQNameSpace.NS_PROPS_PRICE, "props.");

		/**
		 * 用户道具
		 */
		domains.put(IQNameSpace.NS_USER_PROPS_LIST, "props.");

		/**
		 * 道具购买明细
		 */
		domains.put(IQNameSpace.NS_USER_PROPS_HISTORY_LIST, "props.");

		/**
		 * 清除道具
		 */
		domains.put(IQNameSpace.NS_USER_PROPS_HISTORY_DELET, "props.");

		/**
		 * 激活道具
		 */
		domains.put(IQNameSpace.NS_ACTIVE_PROPS, "props.");

	}
}
